package com.student.management.repository;

import com.student.management.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 学生数据访问接口
 * 使用Spring Data JPA自动实现
 */
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
    
    /**
     * 根据学号查询学生
     * @param studentId 学号
     * @return 学生对象
     */
    Optional<Student> findByStudentId(String studentId);

    /**
     * 根据姓名模糊查询学生
     * @param name 姓名
     * @return 学生列表
     */
    List<Student> findByNameContaining(String name);

    /**
     * 根据班级查询学生
     * @param className 班级
     * @return 学生列表
     */
    List<Student> findByClassName(String className);

    /**
     * 根据专业查询学生
     * @param major 专业
     * @return 学生列表
     */
    List<Student> findByMajor(String major);

    /**
     * 检查学号是否存在
     * @param studentId 学号
     * @return 是否存在
     */
    boolean existsByStudentId(String studentId);
}

